import request from "@/utils/request";

const PLATE_BASE_URL = "/api/v1/plate";

const PlateAPI = {
  /** 获取板材分页数据 */
  getPage(queryParams?: PlatePageQuery) {
    return request<any, PageResult<PlatePageVO[]>>({
      url: `${PLATE_BASE_URL}/page`,
      method: "get",
      params: queryParams,
    });
  },
  /** 获取板材下拉数据源 */
  getOptions() {
    return request<any, OptionType[]>({ url: `${PLATE_BASE_URL}/options`, method: "get" });
  },
  /** 获取板材的菜单ID集合 */
  getPlateMenuIds(roleId: string) {
    return request<any, string[]>({ url: `${PLATE_BASE_URL}/${roleId}/menuIds`, method: "get" });
  },
  /** 分配菜单权限 */
  updatePlateMenus(roleId: string, data: number[]) {
    return request({ url: `${PLATE_BASE_URL}/${roleId}/menus`, method: "put", data });
  },
  /** 获取板材表单数据 */
  getFormData(id: string) {
    return request<any, PlateForm>({ url: `${PLATE_BASE_URL}/${id}/form`, method: "get" });
  },
  /** 新增板材 */
  create(data: PlateForm) {
    return request({ url: `${PLATE_BASE_URL}`, method: "post", data });
  },
  /** 更新板材 */
  update(id: string, data: PlateForm) {
    return request({ url: `${PLATE_BASE_URL}/${id}`, method: "put", data });
  },
  /** 批量删除板材，多个以英文逗号(,)分割 */
  deleteByIds(ids: string) {
    return request({ url: `${PLATE_BASE_URL}/${ids}`, method: "delete" });
  },
};

export default PlateAPI;

export interface PlatePageQuery extends PageQuery {
  /** 搜索关键字 */
  keywords?: string;
}
export interface PlatePageVO {
  /** 板材ID */
  id?: string;
  /** 板材编码 */
  code?: string;
  /** 板材名称 */
  name?: string;
  /** 排序 */
  sort?: number;
  /** 板材状态 */
  status?: number;
  /** 创建时间 */
  createTime?: Date;
  /** 修改时间 */
  updateTime?: Date;
}
export interface PlateForm {
  /** 板材ID */
  id?: string;
  /** 板材编码 */
  code?: string;
  /** 数据权限 */
  dataScope?: number;
  /** 板材名称 */
  name?: string;
  /** 排序 */
  sort?: number;
  /** 板材状态(1-正常；0-停用) */
  status?: number;
}
